package fernandez.irene;

import java.util.Random;

public class Corredor extends Thread{

	//private boolean corriendo = false;
	private Testigo testigo;
	private int id;


	public int getIdCorredor(){return id;}
	private Random segundero = new Random();
	public Corredor(Testigo t, int id){
		testigo = t;
		this.id = id;
	}
	
	
	//public boolean estaCorriendo(){return corriendo;}
	
	public void mostrarMensajeInicio(){
		System.out.println("Corredor " +getIdCorredor() +" empieza a correr.");
	}
	
	public void mostrarMensajeFin(){
		System.out.println("Corredor " +getIdCorredor() +" termina de correr. Pasa el testigo al corredor " +(getIdCorredor() +1));
	}
	
	public void run(){
		synchronized (this){ while (testigo.getCorredorSiguiente()!=getIdCorredor()){
			try {
				wait(10);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
		correr();}
	}//run
	
	public synchronized void correr(){
		//Aviso que estoy corriendo
		mostrarMensajeInicio();
		//corriendo = true;
		//corro durante n milisegundos
		try {
			Thread.sleep(segundero.nextInt(1000));
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			System.out.println("Soy " +getIdCorredor() +"mimimi");
		}
		//termino de correr
		//corriendo = false;		
		//notifico
		mostrarMensajeFin();
		//paso turno
		testigo.pasarTurno();

		//notifyAll();
		
	}
	

	
}
